

(defparameter *active-parsing-p* t)

;;; Strings

(defparameter *toptype* '*top*)

(defparameter *string-type* 'string
   "a special type name - any lisp strings are subtypes of it")

;;; Lexical files

(defparameter *orth-path* '(orth))

(defparameter *list-tail* '(rest))

(defparameter *list-head* '(first))

(defparameter *empty-list-type* 'null)

(defparameter *list-type* 'list)

(defparameter *diff-list-type* 'diff-list)

(defparameter *diff-list-list* 'list)

(defparameter *diff-list-last* 'last)

;(defparameter *lex-rule-suffix* "_INFL_RULE"
; "creates the inflectional rule name from the information
;  in irregs.tab - for PAGE compatability")

(defparameter *irregular-forms-only-p* t)

;;;
;;; input characters to be ignored (i.e. suppressed) in tokenization
;;;
(defparameter *punctuation-characters*
  (append
   '(#\space #\! #\" #\& #\(
     #\) #\* #\+ #\, #\. #\/ #\;
     #\< #\= #\> #\? #\@ #\[ #\\ #\] #\^
     #\_ #\` #\{ #\| #\} #\~)
   #+:ics
   '(#\ideographic_full_stop #\fullwidth_question_mark 
     #\horizontal_ellipsis #\fullwidth_full_stop
     #\fullwidth_exclamation_mark #\black_circle
     #\fullwidth_comma #\ideographic_space
     #\katakana_middle_dot #\white_circle)))

(defparameter *display-type-hierarchy-on-load* nil)

;;; Parsing

(defparameter *chart-limit* 100)

(defparameter *maximum-number-of-edges* 4000)

(defparameter *mother-feature* NIL
   "The feature giving the mother in a grammar rule")

(defparameter *start-symbol* '(root_strict)
   "specifing valid parses")

;;;
;;; as we move into the chart mapping universe, lexical entries behave similar
;;; to rules: the list of input tokens that license a lexical entry are unified
;;; into *lexicon-tokens-path* (when set).  furthermore, to give the grammarian
;;; easier access to the token in the right periphery, the last element of the 
;;; tokens list is made re-entrant with *lexicon-last-token-path*.
;;;

(setf *chart-mapping-context-path*  '(+CONTEXT))
(setf *chart-mapping-input-path*    '(+INPUT))
(setf *chart-mapping-output-path*   '(+OUTPUT))
(setf *chart-mapping-position-path* '(+POSITION))

(setf *lexicon-tokens-path*      '(TOKENS +LIST))
(setf *lexicon-last-token-path*  '(TOKENS +LAST))
(setf *token-form-path*          '(+FORM))
(setf *token-id-path*            '(+ID))
(setf *token-from-path*          '(+FROM))
(setf *token-to-path*            '(+TO))
(setf *token-postags-path*       '(+TNT.+TAGS))
(setf *token-posprobs-path*      '(+TNT.+PRBS))

(defparameter *maximal-lex-rule-applications* 7
   "The number of lexical rule applications which may be made
   before it is assumed that some rules are applying circularly")

(defparameter *deleted-daughter-features* 
  '(ARGS HD-DTR NH-DTR DTR MARKER-DTR NON-MARKER-DTR LCOORD-DTR RCOORD-DTR CONJ-DTR NONCONJ-DTR)
  "features pointing to daughters deleted on building a constituent")

(defparameter *packing-restrictor*
  '(RELS HCONS)
  "restrictor used when parsing with ambiguity packing")

;;; Parse tree node labels

;;; the path where the name string is stored
(defparameter *label-path* '(LNAME))

;;; the path for the meta prefix symbol
(defparameter *prefix-path* '(META-PREFIX))

;;; the path for the meta suffix symbol
(defparameter *suffix-path* '(META-SUFFIX))

;;; the path for the recursive category
(defparameter *recursive-path* '(SYNSEM NONLOC SLASH LIST FIRST))

;;; the path inside the node to be unified with the recursive node
(defparameter *local-path* '(SYNSEM LOCAL))

;;; the path inside the node to be unified with the label node
(defparameter *label-fs-path* '())

(defparameter *label-template-type* 'label)

;;; for the compare function 

(defparameter *discriminant-path* '(SYNSEM LOCAL keys key pred))

;;; the lex-rule suffix defaults to _lex_rule, but this might
;;; not be desirable

;(setf *lex-rule-suffix* nil)

(setf *translate-grid* '(:tha :eng :ita))
